home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / ldapjdk.jar / netscape / ldap / ber / stream / BERConstruct.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-13  |  1.5 KB  |  68 lines

  1. package netscape.ldap.ber.stream;
  2.  
  3. import java.io.ByteArrayOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import java.util.Vector;
  8.  
  9. public abstract class BERConstruct extends BERElement {
  10.    private Vector m_elements = new Vector();
  11.  
  12.    public BERConstruct() {
  13.    }
  14.  
  15.    public BERConstruct(BERTagDecoder var1, InputStream var2, int[] var3) throws IOException {
  16.       int var4 = BERElement.readLengthOctets(var2, var3);
  17.       int[] var5 = new int[1];
  18.       if (var4 == -1) {
  19.          Object var6 = null;
  20.          var5[0] = 0;
  21.          BERElement var7 = BERElement.getElement(var1, var2, var5);
  22.          if (var7 != null) {
  23.             this.addElement(var7);
  24.          }
  25.  
  26.          while(var7 != null) {
  27.          }
  28.  
  29.       } else {
  30.          for(var3[0] += var4; var4 > 0; var4 -= var5[0]) {
  31.             var5[0] = 0;
  32.             this.addElement(BERElement.getElement(var1, var2, var5));
  33.          }
  34.  
  35.       }
  36.    }
  37.  
  38.    public void addElement(BERElement var1) {
  39.       this.m_elements.addElement(var1);
  40.    }
  41.  
  42.    public int size() {
  43.       return this.m_elements.size();
  44.    }
  45.  
  46.    public BERElement elementAt(int var1) {
  47.       return (BERElement)this.m_elements.elementAt(var1);
  48.    }
  49.  
  50.    public void write(OutputStream var1) throws IOException {
  51.       var1.write(this.getType());
  52.       ByteArrayOutputStream var2 = new ByteArrayOutputStream();
  53.  
  54.       for(int var3 = 0; var3 < this.m_elements.size(); ++var3) {
  55.          BERElement var4 = this.elementAt(var3);
  56.          var4.write(var2);
  57.       }
  58.  
  59.       byte[] var5 = var2.toByteArray();
  60.       BERElement.sendDefiniteLength(var1, var5.length);
  61.       var1.write(var5);
  62.    }
  63.  
  64.    public abstract int getType();
  65.  
  66.    public abstract String toString();
  67. }
  68.